<?php
App::uses('AppController', 'Controller');
/**
 * Grupos Controller
 *
 * @property Grupo $Grupo
 */
class GruposController extends AppController {

	public $paginate = array();
	
/**
 * index method
 *
 * @return void
 */
	public function index() {
		
		$this->paginate['conditions'] = array();
		
		if ($this->request->is('post') && isset($this->request->data['Filter']['grupo'])) {
			if (!empty($this->request->data['Filter']['grupo'])) {
				$this->Session->write('Grupo.grupo', $this->request->data['Filter']['grupo']);
			} else {
				$this->Session->delete('Grupo.grupo');
			}
		}
		
		if ($this->Session->check('Grupo.grupo')) {
			$descricao = $this->Session->read('Grupo.grupo');
			if (!empty($descricao)) {
				$this->request->data['Filter']['grupo'] = $descricao;
				$this->paginate['conditions']['OR'] = array(
					'Grupo.grupo ILIKE' => '%' . $descricao . '%',
					'ContaContabil.descricao ILIKE' => '%' . $descricao . '%',
				);
			}
		}
		
		$this->Grupo->recursive = 0;
		$this->set('grupos', $this->paginate());
	}

/**
 * view method
 *
 * @param string $id
 * @return void
 */
	public function view($id = null) {
		$this->Grupo->id = $id;
		if (!$this->Grupo->exists()) {
			throw new NotFoundException(__('Invalid grupo'));
		}
		$this->request->data = $this->Grupo->read(null, $id);
		$contaContabils = $this->Grupo->ContaContabil->find('list', array('order' => array('ContaContabil.descricao' => 'asc')));
		$this->set(compact('contaContabils'));
	}

/**
 * add method
 *
 * @return void
 */
	public function add() {
		if ($this->request->is('post')) {
			$this->request->data['Grupo']['vida_util'] = intval($this->request->data['Grupo']['vida_util']);
			$this->request->data['Grupo']['percentual_residual'] = intval($this->request->data['Grupo']['percentual_residual']);
			$this->Grupo->create();
			if ($this->Grupo->save($this->request->data)) {
				$this->Session->setFlash(__('O grupo foi cadastrado com sucesso.'));
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(__('The grupo could not be saved. Please, try again.'));
			}
		}
		$contaContabils = $this->Grupo->ContaContabil->find('list', array('order' => array('ContaContabil.descricao' => 'asc')));
		$this->set(compact('contaContabils'));
	}

/**
 * edit method
 *
 * @param string $id
 * @return void
 */
	public function edit($id = null) {
		$this->Grupo->id = $id;
		if (!$this->Grupo->exists()) {
			throw new NotFoundException(__('Invalid grupo'));
		}
		if ($this->request->is('post') || $this->request->is('put')) {
			$this->request->data['Grupo']['vida_util'] = intval($this->request->data['Grupo']['vida_util']);
			$this->request->data['Grupo']['percentual_residual'] = intval($this->request->data['Grupo']['percentual_residual']);
			if ($this->Grupo->save($this->request->data)) {
				$this->Session->setFlash(__('O grupo foi salvo com sucesso.'));
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(__('The grupo could not be saved. Please, try again.'));
			}
		} else {
			$this->request->data = $this->Grupo->read(null, $id);
		}
		$contaContabils = $this->Grupo->ContaContabil->find('list', array('order' => array('ContaContabil.descricao' => 'asc')));
		$this->set(compact('contaContabils'));
	}

/**
 * delete method
 *
 * @param string $id
 * @return void
 */
	public function delete($id = null) {
		if (!$this->request->is('post')) {
			throw new MethodNotAllowedException();
		}
		$this->Grupo->id = $id;
		if (!$this->Grupo->exists()) {
			throw new NotFoundException(__('Invalid grupo'));
		}
		if ($this->Grupo->delete()) {
			$this->Session->setFlash(__('Grupo deleted'));
			$this->redirect(array('action' => 'index'));
		}
		$this->Session->setFlash(__('Grupo was not deleted'));
		$this->redirect(array('action' => 'index'));
	}
}
